import axios from 'axios'
import { Toast } from 'vant'

// baseURL，process.env.NODE_ENV 可以取到 "development"(开发环境)、"production"(生产环境)
const baseURL = process.env.NODE_ENV === 'development' ? '/api' : ''

// 创建实例
const service = axios.create({
  baseURL,
  timeout: 5000
})
// 请求拦截
service.interceptors.request.use(config => {
  // 提示加载信息
  Toast.loading({
    message: '加载中...',
    forbidClick: true,
    duration: 0
  })
  return config
})
// 响应拦截,axios对请求接口的数据响应内容做了包装
// 真正接口中返回的数据是包装在响应对象的data属性中
service.interceptors.response.use(res => {
  Toast.clear()
  console.log(res)
  if (res.status === 200) { // 能够正常获取到数据
    if (res.data.code === 0) { // 接口本身返回的是正常数据
      return res.data
    } else {
      const e = new Error('后端接口异常')
      e.error = res.data
      Promise.reject(e)
    }
  } else {
    const err = new Error('请求接口失败')
    err.error = res
    Promise.reject(err)
  }
})

export default service
